package cn.jtfadmin.core.modules.quartz.domain.dto;

import cn.jtfadmin.core.modules.quartz.enums.JobStatusEnum;
import cn.jtfadmin.core.modules.quartz.enums.MisfireInstructionActionEnum;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.UUID;

/**
 * 定时任务新增参数
 *
 * @author akfh
 * @version 1.0
 * @since 1.0
 */
@Getter
@Setter
@ToString
public class JobAddPDTO implements Serializable {

    /**
     *
     */
    private static final long serialVersionUID = 1L;

    /**
     * 过期策略
     */
    private MisfireInstructionActionEnum misfireInstructionAction;

    /**
     * 任务类名
     */
    @NotBlank
    protected String jobClassName;


    /**
     * cron 表达式
     */
    @NotBlank
    protected String cronExpression;

    /**
     * 参数
     */

    protected String parameter;

    /**
     * 描述
     */
    protected String description;

    /**
     * 任务状态
     */
    protected JobStatusEnum status;

    /**
     * 开始时间
     */
    protected LocalDateTime startTime;

    /**
     * 结束时间
     */
    protected LocalDateTime endTime;

    /**
     *
     */
    protected String id = UUID.randomUUID().toString();

}
